package request

import (
	"yundian/internel/app/helper/resphelper/placeresp"
	"yundian/internel/app/models/orders"
	"yundian/internel/app/models/prices"
	"yundian/internel/pkg/dingo"
)

// BaseListRequest 基础查询请求
type BaseListReq struct {
	PageNo    int    `json:"pageNo" form:"pageNo"`
	PageSize  int    `json:"pageSize" form:"pageSize"`
	SortField string `form:"sortField"`
	SortOrder string `form:"sortOrder"`
}

// 设备查询条件
type GetPlaceNearbyListReq struct {
	BaseListReq
	Longitude float64 `json:"longitude" form:"longitude"`
	Latitude  float64 `json:"latitude" form:"latitude"`
}
type GetPlaceNearbyListRes struct {
	PlaceId   int     `gorm:"column:id" json:"placeId"`
	Longitude float64 `gorm:"longitude" json:"longitude"`
	Latitude  float64 `gorm:"latitude" json:"latitude"`
	Distance  float64 `gorm:"distance" json:"distance"`
	PlaceName string  `gorm:"place_name" json:"placeName"`
	Area      string  `gorm:"area" json:"area"`
}

// 设备查询条件
type DeviceListReq struct {
	BaseListReq
	DeviceSn     string `json:"deviceSn" form:"deviceSn"`         // 查询条件：设备序列号
	DeviceTypeId int    `json:"deviceTypeId" form:"deviceTypeId"` // 查询条件：设备类型ID
	Status       int    `json:"status" form:"status"`             // 查询条件：设备状态
	PlaceName    string `json:"placeName" form:"placeName"`       // 查询条件：网点名称
	PlaceId      int    `json:"placeId" form:"placeId"`           // 查询条件：网点ID
	UserId       int    `json:"userId" form:"userId"`             // 查询条件：选择代理商(用户ID)
	SharedMode   string `json:"sharedMode" form:"sharedMode"`     // 查询条件：
	PreSn        string `json:"preSn" form:"preSn"`               // 设备批号：
	SnBegin      int    `json:"snBegin" form:"snBegin"`           // 设备序号：
	SnEnd        int    `json:"snEnd" form:"snEnd"`               // 设备序号：
	MaintainerId int    `json:"maintainerId" form:"maintainerId"` // 维护者ID：
	LoginUserId  int    `json:"loginUserId" form:"loginUserId"`   // 查询条件：当前登录的用户ID
	IsAdmin      uint8  `json:"isAdmin" form:"isAdmin"`           //角色类型 1:管理员 2:运营商 3:代理、商户 4:员工  5:合伙人
	IsPlace      uint8  `json:"isPlace" form:"is_place"`
	ParentId     int    `json:"parentId"`                 // 上级代理
	ProdType     int8   `json:"prodType" form:"prodType"` // 类型 1 密码线充(一代线) 2 放水机 3 两口机  11 面板机  12 桌面机  13 速8(已废弃)
	//IsNext       int    `json:"isNext" form:"isNext"`             // 查询条件：是否查询下级
	// 页面传用户ID，是否有下级，通过用户ID --> 网点ID --> 设备信息

	IsPlaceGroup uint8 `json:"isPlaceGroup" form:"isPlaceGroup"` // 网点设备类型去重
}

// 设备类型查询条件
type DeviceTypeListReq struct {
	BaseListReq
	DeviceName string `json:"deviceName" form:"deviceName"` // 查询条件：设备名称
}

// 2.0门店审核操作
type SetPlaceAwaitingModerationStatusReq struct {
	PlaceId   int    `json:"placeId"`
	Status    uint8  `json:"status"`
	PlaceDesc string `json:"placeDesc"`
}

// 网点查询条件
type GetPlaceAwaitingModerationListRes struct {
	placeresp.PlaceList
	OperationUserName string `gorm:"column:operation_user_name" json:"operationUserName"`
	OperationUserId   string `gorm:"column:operation_user_id" json:"operationUserId"`
}

// 网点查询条件
type PlacesListReq struct {
	BaseListReq
	PlaceName    string `json:"placeName" form:"placeName"`       // 查询条件：网点名称
	Status       int    `json:"status" form:"status"`             // 查询条件：网点状态
	AgentUserId  int    `json:"agentUserId" form:"agentUserId"`   // 查询条件：代理商用户ID
	BranchUserId int    `json:"branchUserId" form:"branchUserId"` // 查询条件：分公司用户ID
	IsNext       int    `json:"isNext" form:"isNext"`             // 查询条件：是否查询下级
	AreaCode     string `json:"areaCode" form:"areaCode"`         // 查询条件：地区全称
	Name         string `json:"name" form:"name"`                 // 查询条件：联系人姓名
	Phone        string `json:"phone" form:"phone"`               // 查询条件：手机号码
	ProjectLabel string `json:"projectLabel" form:"projectLabel"` //项目标识
	IsRel        int    `json:"isRel" form:"isRel"`
	MaintainerId int    `json:"maintainerId" form:"maintainerId"`
	IsSteward    int    `json:"isSteward" form:"isSteward"`
	MscId        int    `json:"mscId" form:"mscId"`

	//地区
	ProvinceId int    `json:"provinceId" form:"provinceId"` //省份ID
	CityId     int    `json:"cityId" form:"cityId"`         //城市ID
	CountyId   int    `json:"countyId" form:"countyId"`     //区、县ID
	AreaId     int    `json:"areaId" form:"areaId"`         //区域ID
	IsTianHai  int8   `json:"isTianhai" form:"isTianhai"`   //是否是天海
	BeginTime  string `json:"beginTime" form:"beginTime"`   // 查询条件：创建时间

}

type PlacesLevelListReq struct {
	BaseListReq
	PlaceName string   `json:"placeName" form:"placeName"` // 查询条件：网点名称
	Level     []string `json:"level[]" form:"level[]"`
}

// 周期付款订单
type AutoPayOrderListReq struct {
	BaseListReq
	Status         uint8  `json:"status" form:"status"`                 // 查询条件：订单状态
	RenewStatus    uint8  `json:"renewStatus" form:"renewStatus"`       // 查询条件：续费状态
	MemberName     string `json:"memberName" form:"memberName"`         // 查询条件：会员名称
	MemberId       int    `json:"MemberId" form:"MemberId"`             // 查询条件：会员ID
	TradeNo        string `json:"tradeNo" form:"tradeNo"`               // 查询条件：订单编号
	OutTradeNo     string `json:"outTradeNo" form:"outTradeNo"`         // 查询条件：订单编号
	StartPayTime   string `json:"startPayTime" form:"startPayTime"`     // 查询条件：支付时间
	EndPayTime     string `json:"endPayTime" form:"endPayTime"`         // 查询条件：支付时间
	StartRenewTime string `json:"startRenewTime" form:"startRenewTime"` // 查询条件：有效时间
	EndRenewTime   string `json:"endRenewTime" form:"endRenewTime"`     // 查询条件：有效时间

	IsAdmin uint8 `json:"isAdmin" form:"isAdmin"`
}

// 订单查询条件
type OrderListReq struct {
	BaseListReq
	TradeNo         string   `json:"tradeNo" form:"tradeNo"`                 // 查询条件：订单编号
	OutTradeNo      string   `json:"outTradeNo" form:"outTradeNo"`           // 查询条件：订单编号
	PlaceId         int      `json:"placeId" form:"placeId"`                 // 查询条件：网点名称
	PlaceName       string   `json:"placeName" form:"placeName"`             // 查询条件：网点名称
	DeviceSn        string   `json:"deviceSn" form:"deviceSn"`               // 查询条件：设备序列号
	State           int      `json:"tradeStatus" form:"tradeStatus"`         // 查询条件：状态
	SettlementState int      `json:"settlementState" form:"settlementState"` // 查询条件：异常状态
	PayFrom         string   `json:"payFrom" form:"payFrom"`                 // 查询条件：支付方式
	OrderFrom       string   `json:"orderFrom" form:"orderFrom"`             // 查询条件：支付方式
	SharedMode      string   `json:"sharedMode" form:"sharedMode"`           // 查询条件：共享模式
	TradeType       string   `json:"tradeType" form:"tradeType"`             // 查询条件：收费模式
	UserId          int      `json:"userId" form:"userId"`                   // 查询条件：代理商ID
	IsNext          int      `json:"isNext" form:"isNext"`                   // 查询条件：是否查询下级
	MemberId        string   `json:"memberId" from:"memberId"`               // 查询条件：会员ID
	Openid          string   `json:"openid" form:"openid"`                   // 查询条件：会员微信、支付宝ID
	PayFromFilter   []string `json:"payFrom[]" form:"payFrom[]"`             // 查询条件：支付方式过滤
	OrderFromFilter []string `json:"orderFrom[]" form:"orderFrom[]"`         // 查询条件：订单来源过滤
	StatusFilter    []string `json:"tradeStatus[]" form:"tradeStatus[]"`     // 查询条件：订单状态过滤
	BeginTime       string   `json:"beginTime" form:"beginTime"`             // 查询条件：订单状态过滤
	EndTime         string   `json:"endTime" form:"endTime"`                 // 查询条件：订单状态过滤
	LoginUserId     int      `json:"loginUserId" form:"loginUserId"`         // 查询条件：当前登录的用户ID
	IsAdmin         uint8    `json:"isAdmin" form:"isAdmin"`                 // 角色类型 1:管理员 2:运营商 3:代理、商户 4:员工  5:合伙人
	IsPlace         uint8    `json:"isPlace" form:"isPlace"`                 // 帐号类型
	ParentId        int      `json:"parentId"`                               // 上级代理
	Phone           string   `json:"phone" form:"phone"`                     // 会员手机号码
	IsDraw          uint8    `json:"isDraw" form:"isDraw"`                   // 是否奖励
	AgentUserId     int      `json:"agentUserId" form:"agentUserId"`         // 查询条件：代理商用户ID
	HotelId         string   `json:"hotelId" form:"hotelId"`                 // 母酒店ID
	CountStatus     uint8    `json:"countStatus" form:"countStatus"`         // 是否查询总局数量 2-否
	Pattern         uint8    `json:"pattern" form:"pattern"`                 // 是否直属查询     1-是
	IsTianhai       uint8    `json:"isTianhai" form:"isTianhai"`             // 查询条件：
	ProdType        uint8    `json:"prodType" form:"prodType"`               // 查询条件：
}

type OrderWxListRes struct {
	orders.OrderModel
	PriceTypeInfo *prices.PriceModel `gorm:"-" json:"priceTypeInfo"`
}

// 故障查询条件
type ReportListReq struct {
	BaseListReq
	TradeNo string `json:"tradeNo" form:"tradeNo"` // 查询条件：订单编号
	//int    `json:"status" form:"status"`       // 查询条件：第三方订单号
	PlaceName string `json:"placeName" form:"placeName"` // 查询条件：网点名称
	Status    int    `json:"status" form:"status"`       // 查询条件：状态
	StartTime int    `json:"startTime" form:"startTime"` // 查询条件：开始时间
	EndTime   int    `json:"endTime" form:"endTime"`     // 查询条件：结束时间
	ProdType  int    `json:"prod_type" form:"prodType"`
}

// 故障查询条件
type OrdersstaListReq struct {
	BaseListReq
	PlaceId    int    `json:"placeId" form:"placeId"`       // 查询条件：网点ID
	SharedMode string `json:"sharedMode" form:"sharedMode"` // 设备共享模型  pcl密码线充 cdb充电宝
	SerachTime string `json:"serachTime" form:"serachTime"` // 查询时间

}

// 结束订单使用 - 获取订单信息、获取设备信息
type GetTradeOrDeviceReq struct {
	DeviceSn   string `json:"deviceSn" binding:"required"` // 设备标识
	SetMealNum int8   `json:"setMealNum"`                  // 套餐序号
	Openid     string `json:"openid" binding:"required"`   // 用户openid
	TradeNo    string `json:"tradeNo"`                     // 订单号
	IsPayScore bool   `json:"isPayScore"`                  // 是否微信支付分支付
}

// 后台结束订单使用
type AdminCompleteReq struct {
	DeviceSn   string `json:"deviceSn" binding:"required"` // 设备标识
	SetMealNum int8   `json:"setMealNum"`                  // 套餐序号
	TradeNo    string `json:"tradeNo" binding:"required"`  // 订单号
	IsDraw     int    `json:"isDraw"`                      // 是否是抽单
}

// 后台用户查询条件
type UserList struct {
	BaseListReq
	SearchText   string   `json:"searchText" form:"searchText"`
	PlaceName    string   `json:"placeName" form:"placeName"`
	Phone        string   `json:"phone" form:"phone"`
	Name         string   `json:"name" form:"name"`
	UserName     string   `json:"userName" form:"userName"`
	Status       int8     `json:"status" form:"status"`
	RoleId       int      `json:"roleId" form:"roleId"`
	BeginTime    string   `json:"beginTime" form:"beginTime"`
	ParentId     int      `json:"parentId" form:"parentId"`
	IsAdmin      uint8    `json:"isAdmin" form:"isAdmin"`
	IsPlace      uint8    `json:"isPlace" form:"isPlace"`
	DrawCount    uint8    `json:"drawCount" form:"draw_count"`
	CashCount    int      `json:"cashCount" form:"cash_count"`
	CashMoney    int      `json:"cashMoney" form:"cash_money"`
	DividMoney   int      `json:"dividMoney" form:"divid_money"`
	Level        []string `json:"level[]" form:"level[]"`
	MaintainerId int      `json:"maintainerId" form:"maintainerId"`
	UserId       int      `json:"user_id" form:"user_id"`
	Action       string   `json:"action" form:"action"` // 执行方法，查询或是导出
	UserNo       string   `json:"userNo" form:"userNo"`
	IsSteward    int      `json:"isSteward" form:"isSteward"` // 是否开启2.0

	UserLoginIsPlace uint8 `json:"-" form:"-"`
	UserLoginIsAdmin uint8 `json:"-" form:"-"`
	IsTianHai        int8  `json:"isTianhai" form:"isTianhai"` //是否是天海

}

type GetAgentUserListByParentIdLimit struct {
	BaseListReq
	UserId     int    `json:"userId"`
	IsDividend bool   `json:"isDividend"`
	IsAdmins   []int  `json:"isAdmins"`
	UserName   string `json:"userName"`
	Name       string `json:"name"`
	Phone      string `json:"phone"`
}

type GetAgentUserListByParentIdReq struct {
	TeamNum             int        `gorm:"column:-" json:"teamNum"`
	PlaceNum            int        `gorm:"column:-" json:"placeNum"`
	DividendMonthAmount int64      `gorm:"column:-" json:"dividendMonthAmount"`
	OrderAmount         int64      `gorm:"column:order_amount" json:"orderAmount"`
	ID                  int        `gorm:"column:id" json:"id"`
	ParentID            int        `gorm:"column:parent_id" json:"parentId"`
	RoleID              int        `gorm:"column:role_id" json:"roleId"`
	ProfitProportion    int        `gorm:"column:profit_proportion" json:"profitProportion"`
	IsAdmin             uint8      `gorm:"column:is_admin" json:"isAdmin"`
	Phone               string     `gorm:"column:phone" json:"phone"`
	Name                string     `gorm:"column:name" json:"name"`
	UserName            string     `gorm:"column:user_name" json:"userName"`
	UserNo              string     `gorm:"column:user_no" json:"userNo"`
	Address             string     `gorm:"column:address" json:"address"`
	CreateTime          dingo.Time `gorm:"column:create_at" json:"createTime"`
}

// 后台权限列表查询条件
type PermissionListReq struct {
	BaseListReq
	Label  string `json:"permission_id" form:"label"`
	Name   string `json:"permission_name" form:"name"`
	Status int8   `json:"status" form:"status"`
}

// 后台角色列表查询条件
type RoleListReq struct {
	BaseListReq
	Label  string `json:"permission_id" form:"label"`
	Name   string `json:"permission_name" form:"name"`
	Status int8   `json:"status" form:"status"`
}

// 后台角色添加
type RoleInsertReq struct {
	Id          int             `gorm:"column:id" json:"id"`
	IsAdmin     int8            `gorm:"column:is_admin" json:"isAdmin"`
	Label       string          `gorm:"column:label" json:"label"`
	Name        string          `gorm:"column:name" json:"name"`
	Describe    string          `gorm:"column:describe" json:"describe"`
	Status      uint8           `gorm:"column:status" json:"status"`
	CreateAt    int64           `gorm:"column:create_at" json:"createAt"`
	UpdateAt    int64           `gorm:"column:update_at" json:"updateAt"`
	Permissions []ActionListReq `gorm:"-" json:"permissions"`
}

// 角色权限关联添加
type ActionListReq struct {
	Id         int      `gorm:"column:id" json:"id"`
	Label      string   `gorm:"column:label" json:"label"`
	Name       string   `gorm:"column:name" json:"name"`
	Describe   string   `gorm:"column:describe" json:"describe"`
	ActionData string   `gorm:"column:action_data" json:"actionData"`
	Actions    string   `gorm:"column:actions" json:"actions"`
	ActionList []string `gorm:"-" json:"actionList"`
}

// 管理员用户添加
type AdminUserInsertReq struct {
	Id                 int     `json:"id"`        // ID
	ParentId           int     `json:"parentId"`  // 上级代理
	Name               string  `json:"name"`      // 名称-姓名
	UserName           string  `json:"username"`  // 公司名称
	Password           string  `json:"password"`  // 登录密码
	Phone              string  `json:"phone"`     // 电话
	Status             uint8   `json:"status"`    // 状态
	RoleId             int     `json:"roleId"`    // 所属角色
	UserLevel          string  `json:"userLevel"` // 用户等级、项目类型 agent 代理商 ka KA branch 分公司 direct 直营 bd bd
	ProfitType         int     `json:"profitType"`
	ProfitProportion   int     `json:"profitProportion"`
	SmProfitProportion int     `json:"smProfitProportion"`
	ProfitIsVisible    int     `json:"profitIsVisible"`
	OrderIsVisible     int     `json:"orderIsVisible"`
	IncomeIsVisible    int     `json:"incomeIsVisible"`
	PlaceName          string  `json:"placeName"`
	ClassName          string  `json:"className"`
	MaintainerId       int     `json:"maintainerId"` // 维护者ID
	Province           string  `json:"province"`     // 省编号
	City               string  `json:"city"`         // 市编号
	County             string  `json:"county"`       // 县编号
	Address            string  `json:"address"`
	RegionIds          string  `json:"regionIds"`
	KaUserId           int     `json:"ka_user_id"`
	TaxRate            uint8   `json:"taxRate"` // 税率
	TaxRateRoom        float32 `gorm:"tax_rate_room" json:"taxRateRoom"`
	TaxRateGoods       float32 `gorm:"tax_rate_goods" json:"taxRateGoods"`
	TaxRateAutomate    float32 `gorm:"tax_rate_automate" json:"taxRateAutomate"`

	// 商户进场模式
	EntryMoney int   `json:"entryMoney"` // 进场金额
	EntryAt    int64 `json:"entryAt"`    // 进场时间

	IsAdmin       uint8  `json:"isAdmin"`   // 是否为管理员 1管理员 2运营商 3合作伙伴
	IsDraw        uint8  `json:"isDraw"`    // 是否开启抽单
	IsCash        uint8  `json:"isCash"`    // 是否提现
	IsDivinds     uint8  `json:"isDivinds"` // 是否参与分红
	IsDividendsSm uint8  `json:"isDividendsSm"`
	IsSteward     uint8  `json:"isSteward"`
	Module        string `json:"module"`
	Platform      string `json:"platform"`
}

type PlaceInsertReq struct {
	Id           int    `json:"id"`
	UserId       int    `json:"userId"`   // 上级代理
	MscId        int    `json:"mscId"`   // 上级代理
	ParentId     int    `json:"parentId"` // 上级代理
	Name         string `json:"name"`     // 名称-姓名
	Status       uint8  `json:"status"`   // 状态
	PlaceName    string `json:"placeName"`
	PlaceDesc    string `json:"placeDesc"`
	ClassName    string `json:"className"`
	MaintainerId int    `json:"maintainerId"` // 维护者ID
	Province     string `json:"province"`     // 省编号
	City         string `json:"city"`         // 市编号
	County       string `json:"county"`       // 县编号
	Address      string `json:"address"`
	RegionIds    string `json:"regionIds"`
	// 商户进场模式
	EntryMoney   int    `json:"entryMoney"` // 进场金额
	EntryAt      int64  `json:"entryAt"`    // 进场时间
	HotelId      string `json:"hotelId"`
	KaUserId     int    `json:"kaUserId"`
	BranchUserId int    `json:"branchUserId"`
	//地区
	ProvinceId int `gorm:"column:province_id" json:"provinceId"` //省份ID
	CityId     int `gorm:"column:city_id" json:"cityId"`         //城市ID
	CountyId   int `gorm:"column:county_id" json:"countyId"`     //区、县ID
	AreaId     int `gorm:"column:area_id" json:"areaId"`         //区域ID

	IsAd         int    `gorm:"is_ad" json:"isAd"` //是否展示广告
	IsBusiness   int    `gorm:"is_business" json:"isBusiness"`
	IsOpenFirst   int    `gorm:"isOpenFirst" json:"isOpenFirst"`
	ProjectLabel string `gorm:"project_label" json:"projectLabel"` //关联项目

	Longitude   string `gorm:"column:longitude" json:"longitude"`      // 经度
	Latitude    string `gorm:"column:latitude" json:"latitude"`        // 纬度

	PlaceLicense string `gorm:"place_license" json:"placeLicense"` // 营业执照
	PlaceFace    string `gorm:"place_face" json:"placeFace"`       // 店面照片
	PlaceDesign  string `gorm:"place_design" json:"placeDesign"`   // 店面环境
}

// 后台会员列表查询条件
type MemberListReq struct {
	BaseListReq
	State     int    `gorm:"column:state" form:"state"`
	Openid    string `gorm:"column:openId" form:"openId"`
	Phone     string `gorm:"column:phone" form:"phone"`
	NickName  string `gorm:"column:nick_name" form:"nickName"`
	RegFrom   string `gorm:"column:reg_from" form:"regFrom"`
	BeginTime string `json:"beginTime" form:"beginTime"`
}

// 后台提现查询条
type CashListReq struct {
	BaseListReq
	Name      string `json:"name" form:"name"`
	Phone     string `json:"phone" form:"phone"`
	Status    int    `json:"status" form:"status"`
	BeginTime string `json:"beginTime" form:"beginTime"`
	UserId    int    `json:"userId" form:"userId"`
	IsAdmin   int    `json:"isAdmin" form:"isAdmin"`
	IsPlace   uint8  `json:"isPlace" form:"isPlace"`
}

// 商户设备使用率
type OrderTotalReq struct {
	BaseListReq
	SearchTime string `json:"searchTime" form:"searchTime"` // 查询条件：时间
	SharedMode string `json:"sharedMode" form:"sharedMode"`
	//SearchType       int      `json:"searchType" form:"searchType"`  // 类型：1:昨日 2:7日 3:30日 4:自定义时间
	SearchText string   `json:"searchText" form:"searchText"`
	Level      []string `json:"level[]" form:"level[]"`
	IsAdmin    uint8    `json:"isAdmin" form:"isAdmin"` //角色类型 1:管理员 2:运营商 3:代理、商户 4:员工  5:合伙人
	UserId     int      `json:"userId"  form:"userId"`  // 上级代理
	IsPlace    uint8    `json:"isPlace" form:"isPlace"` //是否为分公司 3 分公司
}

// 登录日志查询字段
type LoginLogsListReq struct {
	BaseListReq
	UserName  string `json:"userName" form:"userName"`
	LoginIp   string `json:"loginIp" form:"loginIp"`
	Phone     string `json:"phone" form:"phone"`
	UserPhone string `json:"user_phone" form:"userPhone"`
	Module    string `json:"module" form:"module"`
}

type ScanLogsListReq struct {
	BaseListReq
	PlaceName string `json:"placeName" form:"placeName"`
	DayStr    string `json:"dayStr" form:"dayStr"`
	MonthStr  string `json:"monthStr" form:"monthStr"`
}

// 商户设备使用率
type PlacePriceLogsListReq struct {
	BaseListReq
	UserName  string `json:"userName" form:"userName"`   // 查询条件：用户名
	PlaceName string `json:"placeName" form:"placeName"` // 查询条件：网点名称
	BeginTime string `json:"beginTime" form:"beginTime"` // 查询条件：修改时间
}

// 后台商户详情-订单流水
type PlaceOrderListReq struct {
	BaseListReq
	PlaceId int `json:"placeId" form:"placeId"`
}

// 配置新增
type OptionsInsertReq struct {
	PartnerBrokerage      string `json:"partnerBrokerage" form:"partnerBrokerage"`           //提现手续费
	MinMoneyStr           string `json:"minMoneyStr" form:"minMoneyStr"`                     //提现最小金额
	MaxMoneyStr           string `json:"maxMoneyStr" form:"maxMoneyStr"`                     //提现最大金额
	ProjectDayMaxMoneyStr string `json:"projectDayMaxMoneyStr" form:"projectDayMaxMoneyStr"` //项目日限额
	DayMaxMoneyStr        string `json:"dayMaxMoneyStr" form:"dayMaxMoneyStr"`               //代理商日限额
	AutoMaxMoneyStr       string `json:"autoMaxMoneyStr" form:"autoMaxMoneyStr"`             //自动审核金额
	AliTransferAppId      string `json:"aliTransferAppId" form:"aliTransferAppId"`           //支付宝转账appId
	WxTransferAppId       string `json:"wxTransferAppId" form:"wxTransferAppId"`             //微信转账appId
	AutoTransferAccounts  string `json:"autoTransferAccounts" form:"autoTransferAccounts"`   //开启自动转账
}

type WithDrawalReq struct {
	Openid   string `json:"openid"`
	Desc     string `json:"desc"`
	ClientIp string `json:"ip"`
	Name     string `json:"name"` // 如果开启验证姓名，则此字段必填
	UserId   int    `json:"userId"`
	Amount   string `json:"amount"`
	Appid    string `json:"appid"`
}

type PlaceListReq struct {
	BaseListReq
	UserName  string `form:"userName" json:"user_name"`  // 用户ID
	Status    int8   `form:"status" json:"status"`       // 状态
	PlaceName string `form:"placeName" json:"placeName"` // 商户名称
	Province  string `form:"province" json:"province"`   // 用户所在省份
	City      string `form:"city" json:"city"`           // 用户所在城市
	County    string `form:"county" json:"county"`       // 用户所在城市
	RegionIds string `form:"regionIds" json:"region_ids"`
}

type UserImportReq struct {
	UserId           int    `gorm:"column:user_id"json:"userId"`
	Name             string `gorm:"column:name"json:"name"`
	UserName         string `gorm:"column:user_name"json:"userName"`
	Phone            string `gorm:"column:phone"json:"phone" form:"phone"`
	ProfitProportion int    `gorm:"column:profit_proportion"json:"profitProportion"`
	IsPlace          int    `gorm:"column:is_place"json:"isPlace"`
	ParentId         int    `gorm:"column:parent_id"json:"parentId"`
	CreateAt         int    `gorm:"column:create_at"json:"createAt"`
	IsDraw           int    `gorm:"column:is_draw"json:"isDraw"`
	IsCash           int    `gorm:"column:is_cash"json:"isCash"`
}

type RefundListReq struct {
	BaseListReq
	TradeNo    string `form:"tradeNo" json:"tradeNo"`       // 商户名称
	OutTradeNo string `form:"outTradeNo" json:"outTradeNo"` // 第三方订单号
}

type BannerListReq struct {
	BaseListReq
	KaName     string `form:"kaName" json:"kaName"`
	BannerName string `form:"bannerName" json:"bannerName"`
}

// 物流查询条件
type PlaceLogisticsModelListReq struct {
	BaseListReq
	LogisticsOrderNo string `json:"logisticsOrderNo" form:"logisticsOrderNo"` // 查询条件：当前运单号
	PlaceStr         string `json:"placeStr" form:"placeStr"`                 // 查询条件：当前网点或ID
	Status           uint8  `json:"status" form:"status"`                     // 查询条件：
	ReturnStatus     uint8  `gorm:"column:return_status" json:"returnStatus"` // 查询条件：
	PlaceId          int    `json:"placeId" form:"placeId"`                   // 查询条件：当前网点ID
	LoginUserId      int    `json:"loginUserId" form:"loginUserId"`           // 查询条件：当前登录的用户ID
	IsAdmin          uint8  `json:"isAdmin" form:"isAdmin"`                   // 角色类型 1:管理员 2:运营商 3:代理、商户 4:员工  5:合伙人
	IsPlace          uint8  `json:"isPlace" form:"isPlace"`                   // 帐号类型
}

// 代理商统计报表
type AgentStatisticsReportReq struct {
	BaseListReq
	IsAdmin     uint8
	LoginUserId int
	MonthType   int    `json:"type" form:"type"`
	UserId      int    `json:"userId" form:"userId" `
	SelectTime  string `json:"selectTime" form:"selectTime"`
	SharedMode  string `json:"sharedMode" form:"sharedMode"`
}

// 项目列表查询条件
type KaProjectListReq struct {
	BaseListReq
	KaLabel    string `json:"kaLabel" form:"kaLabel"`       // 查询条件：KA唯一标识
	KaName     string `json:"kaName" form:"kaName"`         // 查询条件：项目名称
	Status     int    `json:"status" form:"status"`         // 查询条件：项目状态
	MembersUrl string `json:"membersUrl" form:"membersUrl"` // 会员接口
	CreateAt   int64  `json:"createAt" form:"createAt"`
}

type KaProjectInsertReq struct {
	Id             int    `json:"id"`
	KaLabel        string `json:"kaLabel"`    // 唯一标识
	KaName         string `json:"kaName"`     // 唯一标识
	KaDesc         string `json:"kaDesc"`     // 描述
	Status         uint8  `json:"status"`     // 状态
	CouponId       int    `json:"couponId"`   // 优惠券 ID
	MembersUrl     string `json:"membersUrl"` // 会员接口
	MembersTestUrl string `json:"membersTestUrl"`
	Appid          string `json:"appid"`
	AppSecret      string `json:"appsecret"`
	IsToken        uint8  `json:"isToken"`
	Code           string `json:"code"`
}

// 用户信息变更
type UserProfitLogReq struct {
	BaseListReq
	UserName          string `json:"userName"  form:"userName"`                  // 用户名称
	OperationUserName string `json:"operationUserName" form:"operationUserName"` // 操作用户名称
	BeginTime         string `json:"beginTime" form:"beginTime"`                 // 查询 时间
}

// 门店信息变更
type PlaceOperateLogReq struct {
	BaseListReq
	PlaceName         string `json:"placeName"  form:"placeName"`                // 用户名称
	OperationUserName string `json:"operationUserName" form:"operationUserName"` // 操作用户名称
	BeginTime         string `json:"beginTime" form:"beginTime"`                 // 查询 时间
}

type OrderOperateLogReq struct {
	BaseListReq
	UserName  string `json:"userName" form:"userName"`   // 查询条件：用户名
	PlaceName string `json:"placeName" form:"placeName"` // 查询条件：网点名称
	BeginTime string `json:"beginTime" form:"beginTime"` // 查询条件：修改时间
}

type ComplaintsReq struct {
	BaseListReq
	BeginDate        string `json:"begin_date" form:"beginDate"`              // 开始日期 投诉发生的开始日期，格式为YYYY-MM-DD。注意，查询日期跨度不超过30天，当前查询为实时查询
	EndDate          string `json:"end_date" form:"endDate"`                  // 结束日期 投诉发生的结束日期，格式为YYYY-MM-DD。注意，查询日期跨度不超过30天，当前查询为实时查询
	ComplaintedMchid string `json:"complaintedMchid" form:"complaintedMchid"` // 被诉商户号
	ComplaintId      string `json:"complaint_id" form:"complaint_id"`         // 被诉商户号
}

type ComplaintsSubmitReq struct {
	ComplaintId     string   `json:"complaint_id"`
	ComplaintMchId  string   `json:"complainted_mchid"`
	ResponseContent string   `json:"response_content"`
	ResponseImages  []string `json:"response_images"`
}

// 统计报表
type ProjectStatisticsReq struct {
	BaseListReq
	IsAdmin      uint8 `json:"isAdmin" form:"isAdmin"`
	LoginIsAdmin uint8
	LoginUserId  int
	MonthType    int    `json:"type" form:"type"`
	UserId       int    `json:"userId" form:"userId" `
	SelectTime   string `json:"selectTime" form:"selectTime"`
	SharedMode   string `json:"sharedMode" form:"sharedMode"`
}

type InternalStatisticsReq struct {
	BaseListReq
	IsAdmin      uint8  `json:"isAdmin" form:"isAdmin"`
	Phone        string `json:"phone" form:"phone"`       // 查询条件：手机号码
	UserName     string `json:"userName" form:"userName"` // 查询条件：用户名
	LoginIsAdmin uint8
	LoginUserId  int
	MonthType    int    `json:"type" form:"type"`
	UserId       int    `json:"userId" form:"userId" `
	SelectTime   string `json:"selectTime" form:"selectTime"`
	SharedMode   string `json:"sharedMode" form:"sharedMode"`
}

type CooperationRegisterReq struct {
	BaseListReq
	IsAdmin      uint8  `json:"isAdmin" form:"isAdmin"`
	Name         string `json:"name" form:"name"`
	Phone        string `json:"phone" form:"phone"`       // 查询条件：手机号码
	UserName     string `json:"userName" form:"userName"` // 查询条件：用户名
	LoginIsAdmin uint8
	LoginUserId  int
	UserId       int    `json:"userId" form:"userId" `
	SelectTime   string `json:"selectTime" form:"selectTime"`
}

type SetUserStewardStatusReq struct {
	UserId    int   `json:"userId"`    // 商户ID
	IsSteward uint8 `json:"isSteward"` // 是否启用管理服务 1-是 2-否
	IsAdmin   uint8
	ParentId  int
}

type SavePloyReq struct {
	PlaceIds    []int `json:"placeIds"`
	AgentUserId int   `json:"agentUserId"`
	Range       int   `json:"range"`
	Num         int   `json:"num"`
	//Type         int    `json:"type"`
	Status int `json:"status"`
	//TypeId     int    `json:"typeId"`
	SharedMode string `json:"sharedMode"`
	PloyType   int    `json:"ployType"`
	PloyName   string `json:"ployName"`
	//PlaceId   int    `json:"placeId"`
}

// 基础数据查询条件
type AnalysisListReq struct {
	BaseListReq
	CountStatus uint8  `json:"countStatus" form:"countStatus"` // 是否查询总局数量 2-否
	BeginTime   string `json:"beginTime" form:"beginTime"`
}

type AnalysisUserListReq struct {
	BaseListReq
	CountStatus uint8  `json:"countStatus" form:"countStatus"` // 是否查询总局数量 2-否
	BeginTime   string `json:"beginTime" form:"beginTime"`
	IsAdmin     uint8  `json:"isAdmin" form:"isAdmin"`
	UserId      int    `json:"userId" form:"userId"`
}

type AnalysisUserReq struct {
	BaseListReq
	StatisticType string `form:"statisticType" json:"statisticType"` // 类型 all 总统计 day 天  month 月
	UserId        int    `form:"userId" json:"userId"`
}

type UvDataInsertReq struct {
	DateStr  string `json:"dateStr"`  // 日期
	WxUv     int    `json:"wxUv"`     // 微信UV
	WxNewUv  int    `json:"wxNewUv"`  // 微信新UV
	ZfbUv    int    `json:"zfbUv"`    // 支付宝UV
	ZfbNewUv int    `json:"zfbNewUv"` // 支付宝新UV
	WxAd     int64  `json:"wxAd"`     // 微信广告
	ZfbAd    int64  `json:"ZfbAd"`    // 支付宝广告
	WxKs     int    `json:"wxKs"`     // 微信客诉
}

type GetChargeDataListReq struct {
	UserId int    `form:"userId" json:"userId"`
	Month  string `form:"month" json:"month"`
	Fields string `form:"fields" json:"fields"`
}

type GetAutomateDataListReq struct {
	UserId   int    `form:"userId" json:"userId"`
	Month    string `form:"month" json:"month"`
	Fields   string `form:"fields" json:"fields"`
	IsAdmin  uint8  `json:"isAdmin" form:"isAdmin"`
	ParentId int    `json:"parentId"`
}

type GetGoodsDataListReq struct {
	UserId   int    `form:"userId" json:"userId"`
	Month    string `form:"month" json:"month"`
	Fields   string `form:"fields" json:"fields"`
	IsAdmin  uint8  `json:"isAdmin" form:"isAdmin"`
	ParentId int    `json:"parentId"`
}

type GetRoomDataListReq struct {
	UserId   int    `form:"userId" json:"userId"`
	Month    string `form:"month" json:"month"`
	Fields   string `form:"fields" json:"fields"`
	IsAdmin  uint8  `json:"isAdmin" form:"isAdmin"`
	ParentId int    `json:"parentId"`
}

type GetAnalysisPlaceListReq struct {
	BaseListReq
	Phone     string `form:"phone" json:"phone"`
	UserName  string `form:"userName" json:"userName"`
	PlaceName string `form:"placeName" json:"placeName"`
	Sort      uint8  `form:"sort" json:"sort"` // 1-降 2-升
	IsAdmin   uint8  `json:"isAdmin" form:"isAdmin"`
	UserId    int    `form:"userId" json:"userId"`
	ParentId  int    `json:"parentId"`
	PlaceId   int    `json:"placeId"`
	Month     string `json:"month"`
}

type GetPlaceInfoOrderDataRes struct {
	SettlementTotal int64 `gorm:"column:settlement_total" json:"settlementTotal"` // 流水
	OrderNum        int64 `gorm:"column:order_num" json:"orderNum"`               // 订单数
	PlaceId         int   `gorm:"column:place_id" json:"placeId"`                 // 门店ID
	Type            int   `gorm:"column:type" json:"type"`                        // 订单类型
}

type GetAnalysisPlaceListRes struct {
	ScanNum         int64  `gorm:"column:scan_num" json:"scanNum"`                  // 扫码量
	SettlementTotal int64  `gorm:"column:settlement_total" json:"settlementTotal"`  // 流水
	UseDeviceNum    int64  `gorm:"column:use_device_num" json:"useDeviceNum"`       // 设备使用数
	ActiveDeviceNum int64  `gorm:"column:active_device_num" json:"activeDeviceNum"` // 设备动销数
	DeviceNum       int64  `gorm:"column:device_num" json:"deviceNum"`              // 设备总数
	OrderNum        int64  `gorm:"column:order_num" json:"orderNum"`                // 订单数
	PlaceId         int    `gorm:"column:place_id" json:"placeId"`                  // 门店ID
	PlaceName       string `gorm:"column:place_name" json:"placeName"`              // 门店名称
	InTime          string `gorm:"column:in_time" json:"inTime"`                    // 入驻时间
}

type GetAnalysisPlaceInfoDataRes struct {
	SettlementTotal    int64  `gorm:"column:settlement_total" json:"settlementTotal"`       // 总流水
	SettlementCharge   int64  `gorm:"column:charge_settlement" json:"chargeSettlement"`     // 充电流水
	SettlementAutomate int64  `gorm:"column:settlement_automate" json:"settlementAutomate"` // 售卖流水
	SettlementRoom     int64  `gorm:"column:settlement_room" json:"settlementRoom"`         // 续住流水
	SettlementGoods    int64  `gorm:"column:settlement_goods" json:"settlementGoods"`       // 超市流水
	DeviceNumLine      int64  `gorm:"column:device_num_line" json:"deviceNumLine"`          // 线充设备
	DeviceNumWater     int64  `gorm:"column:device_num_water" json:"deviceNumWater"`        // 放水机设备
	DeviceNumAutomate  int64  `gorm:"column:device_num_automate" json:"deviceNumAutomate"`  // 两口机设备
	ScanNum            int64  `gorm:"column:scan_num" json:"scanNum"`                       // 扫码量
	OrderNum           int64  `gorm:"column:order_num" json:"orderNum"`                     // 订单数
	PlaceId            int    `gorm:"column:place_id" json:"placeId"`                       // 门店ID
	PlaceName          string `gorm:"column:place_name" json:"placeName"`                   // 门店名称
	Date               string `gorm:"column:date" json:"date"`                              // 门店名称
}
